1. Field of the Invention
The invention relates to Quality of Service (QoS) mechanisms in wireless Local Area Networking (LAN) communication systems. More particularly, it relates to management of multiple priority queues in wireless communications systems so as to ensure that lower priority traffic is not precluded from accessing the medium during sustained periods of higher priority traffic being sent.
2. Background of Related Art
In communications systems according to the background art, ‘transmit’ packets flow from host memory to an internal transmit (packet) buffer usually under the control of a resident data movement or DMA engine, which in turn is commanded by the system driver or software. The Media Access Controller (MAC) retrieves transmit data from this packet buffer, frames it appropriately, and forwards it to a physical network layer device. Likewise, ‘receive’ packets flow to the MAC from the receiver. The MAC extracts packet data from the surrounding header and CRC, while packet management logic determines whether each packet should be discarded, buffered, or merely decoded for network flow control and power management. Each packet which reaches the receive buffer is forwarded to the host computer via a data movement engine, again operating under host driver control. Generally, the functional implementation of on-device buffers limits the amount of physical data that can be brought onto the device—i.e. packet memory is generally limited due to cost and area concerns.
In these communications systems according to the background art, packets are sequentially queued and managed on a “best-effort” basis.
FIG. 4 is a block diagram showing a conventional non-priority based management provisions.
In particular, as shown in FIG. 4, a MAC (Medium Access Control layer) 110 is interposed between a system 120 and a medium 130. The MAC 110 includes a Transmit Packet Buffer 150 and an associated Channel Access routine 160, as well as a Receive Packet Buffer 180 and an associated Channel Access routine 190.
In systems that offer only a single queue structure, a boundary condition is effectively placed on the system software or driver requiring that in the transmit direction the software apply a minimum packet queuing strategy in the available (system/host) transmit buffers in systems that want to establish multiple-class priority traffic scenarios. (The transmit direction is defined as the direction of packets which traverse from local system memory through the system out onto the medium. The receive direction is defined as the direction of incoming packets from the medium that are demodulated and placed into system memory.) This requirement or boundary condition is typically placed on a system in an effort to prevent a potentially large delay situation when a high priority packet is passed down to the driver from the operating system. Such a priority frame cannot be “inserted” easily in the existing queue, mostly because the potential ownership or consumption of available buffer space is unknown (e.g., it may have already been relinquished to the device).